package com.yaorange.medical.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * ERP资产信息表
 * @TableName bs_asset_erp
 */
@Data
public class BsAssetErp implements Serializable {
    /**
     * 主键id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 资产名称
     */
    private String assetName;

    /**
     * 资产编号
     */
    private String assetCode;

    /**
     * 资产卡片号
     */
    private String assetCardNo;

    /**
     * 资产分类
     */
    private String assetType;

    /**
     * 卡片状态
     */
    private Integer cardStatus;

    /**
     * 卡片类型
     */
    private Integer cardType;

    /**
     * 设备分类
     */
    private String deviceTypeId;

    /**
     * 设备分类ID列表
     */
    private String deviceTypeIds;

    /**
     * 设备名称
     */
    private String deviceTypeName;

    /**
     * 所属部门
     */
    private String departmentId;

    /**
     * 所属部门名称
     */
    private String departmentName;

    /**
     * 部门列表ID
     */
    private String departmentIds;

    /**
     * 所属仓库
     */
    private String atWarehouse;

    /**
     * 区域id
     */
    private String areaId;

    /**
     * 位置
     */
    private String atLocation;

    /**
     * 位置列表
     */
    private String areaIds;

    /**
     * 入账方式
     */
    private Integer entryType;

    /**
     * 合同号
     */
    private String contractNo;

    /**
     * 原始发票号
     */
    private String invoiceNo;

    /**
     * 采购员
     */
    private String buyer;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 生产厂商
     */
    private Integer factory;

    /**
     * 产地
     */
    private String place;

    /**
     * 规格
     */
    private String specs;

    /**
     * 型号
     */
    private String model;

    /**
     * 机身号
     */
    private String frameNo;

    /**
     * 财务分类
     */
    private Integer financeType;

    /**
     * 资金来源
     */
    private Integer fundsSource;

    /**
     * 国标代码
     */
    private String gbCode;

    /**
     * 国标名称
     */
    private String gbName;

    /**
     * 入库单号
     */
    private String stockInNo;

    /**
     * 入库时间
     */
    private Date stockInTime;

    /**
     * 生命急救
     */
    private Integer aidFlag;

    /**
     * 是否进口
     */
    private Integer importFlag;

    /**
     * 是否在库
     */
    private Integer stockFlag;

    /**
     * 是否验收
     */
    private Integer checkFlag;

    /**
     * 净值
     */
    private BigDecimal netProductValue;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 计量单位
     */
    private String unit;

    /**
     * 供应商
     */
    private Integer provider;

    /**
     * 供应商电话
     */
    private String providerPhone;

    /**
     * 单位代码
     */
    private String unitCode;

    /**
     * 保修开始时间
     */
    private Date warrantyBeginTime;

    /**
     * 保修结束时间
     */
    private Date warrantyEndTime;

    /**
     * 甲乙类
     */
    private String assetLevel;

    /**
     * 使用状态
     */
    private Integer status;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        BsAssetErp other = (BsAssetErp) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getAssetName() == null ? other.getAssetName() == null : this.getAssetName().equals(other.getAssetName()))
            && (this.getAssetCode() == null ? other.getAssetCode() == null : this.getAssetCode().equals(other.getAssetCode()))
            && (this.getAssetCardNo() == null ? other.getAssetCardNo() == null : this.getAssetCardNo().equals(other.getAssetCardNo()))
            && (this.getAssetType() == null ? other.getAssetType() == null : this.getAssetType().equals(other.getAssetType()))
            && (this.getCardStatus() == null ? other.getCardStatus() == null : this.getCardStatus().equals(other.getCardStatus()))
            && (this.getCardType() == null ? other.getCardType() == null : this.getCardType().equals(other.getCardType()))
            && (this.getDeviceTypeId() == null ? other.getDeviceTypeId() == null : this.getDeviceTypeId().equals(other.getDeviceTypeId()))
            && (this.getDeviceTypeIds() == null ? other.getDeviceTypeIds() == null : this.getDeviceTypeIds().equals(other.getDeviceTypeIds()))
            && (this.getDeviceTypeName() == null ? other.getDeviceTypeName() == null : this.getDeviceTypeName().equals(other.getDeviceTypeName()))
            && (this.getDepartmentId() == null ? other.getDepartmentId() == null : this.getDepartmentId().equals(other.getDepartmentId()))
            && (this.getDepartmentName() == null ? other.getDepartmentName() == null : this.getDepartmentName().equals(other.getDepartmentName()))
            && (this.getDepartmentIds() == null ? other.getDepartmentIds() == null : this.getDepartmentIds().equals(other.getDepartmentIds()))
            && (this.getAtWarehouse() == null ? other.getAtWarehouse() == null : this.getAtWarehouse().equals(other.getAtWarehouse()))
            && (this.getAreaId() == null ? other.getAreaId() == null : this.getAreaId().equals(other.getAreaId()))
            && (this.getAtLocation() == null ? other.getAtLocation() == null : this.getAtLocation().equals(other.getAtLocation()))
            && (this.getAreaIds() == null ? other.getAreaIds() == null : this.getAreaIds().equals(other.getAreaIds()))
            && (this.getEntryType() == null ? other.getEntryType() == null : this.getEntryType().equals(other.getEntryType()))
            && (this.getContractNo() == null ? other.getContractNo() == null : this.getContractNo().equals(other.getContractNo()))
            && (this.getInvoiceNo() == null ? other.getInvoiceNo() == null : this.getInvoiceNo().equals(other.getInvoiceNo()))
            && (this.getBuyer() == null ? other.getBuyer() == null : this.getBuyer().equals(other.getBuyer()))
            && (this.getBrand() == null ? other.getBrand() == null : this.getBrand().equals(other.getBrand()))
            && (this.getFactory() == null ? other.getFactory() == null : this.getFactory().equals(other.getFactory()))
            && (this.getPlace() == null ? other.getPlace() == null : this.getPlace().equals(other.getPlace()))
            && (this.getSpecs() == null ? other.getSpecs() == null : this.getSpecs().equals(other.getSpecs()))
            && (this.getModel() == null ? other.getModel() == null : this.getModel().equals(other.getModel()))
            && (this.getFrameNo() == null ? other.getFrameNo() == null : this.getFrameNo().equals(other.getFrameNo()))
            && (this.getFinanceType() == null ? other.getFinanceType() == null : this.getFinanceType().equals(other.getFinanceType()))
            && (this.getFundsSource() == null ? other.getFundsSource() == null : this.getFundsSource().equals(other.getFundsSource()))
            && (this.getGbCode() == null ? other.getGbCode() == null : this.getGbCode().equals(other.getGbCode()))
            && (this.getGbName() == null ? other.getGbName() == null : this.getGbName().equals(other.getGbName()))
            && (this.getStockInNo() == null ? other.getStockInNo() == null : this.getStockInNo().equals(other.getStockInNo()))
            && (this.getStockInTime() == null ? other.getStockInTime() == null : this.getStockInTime().equals(other.getStockInTime()))
            && (this.getAidFlag() == null ? other.getAidFlag() == null : this.getAidFlag().equals(other.getAidFlag()))
            && (this.getImportFlag() == null ? other.getImportFlag() == null : this.getImportFlag().equals(other.getImportFlag()))
            && (this.getStockFlag() == null ? other.getStockFlag() == null : this.getStockFlag().equals(other.getStockFlag()))
            && (this.getCheckFlag() == null ? other.getCheckFlag() == null : this.getCheckFlag().equals(other.getCheckFlag()))
            && (this.getNetProductValue() == null ? other.getNetProductValue() == null : this.getNetProductValue().equals(other.getNetProductValue()))
            && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
            && (this.getUnit() == null ? other.getUnit() == null : this.getUnit().equals(other.getUnit()))
            && (this.getProvider() == null ? other.getProvider() == null : this.getProvider().equals(other.getProvider()))
            && (this.getProviderPhone() == null ? other.getProviderPhone() == null : this.getProviderPhone().equals(other.getProviderPhone()))
            && (this.getUnitCode() == null ? other.getUnitCode() == null : this.getUnitCode().equals(other.getUnitCode()))
            && (this.getWarrantyBeginTime() == null ? other.getWarrantyBeginTime() == null : this.getWarrantyBeginTime().equals(other.getWarrantyBeginTime()))
            && (this.getWarrantyEndTime() == null ? other.getWarrantyEndTime() == null : this.getWarrantyEndTime().equals(other.getWarrantyEndTime()))
            && (this.getAssetLevel() == null ? other.getAssetLevel() == null : this.getAssetLevel().equals(other.getAssetLevel()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getAssetName() == null) ? 0 : getAssetName().hashCode());
        result = prime * result + ((getAssetCode() == null) ? 0 : getAssetCode().hashCode());
        result = prime * result + ((getAssetCardNo() == null) ? 0 : getAssetCardNo().hashCode());
        result = prime * result + ((getAssetType() == null) ? 0 : getAssetType().hashCode());
        result = prime * result + ((getCardStatus() == null) ? 0 : getCardStatus().hashCode());
        result = prime * result + ((getCardType() == null) ? 0 : getCardType().hashCode());
        result = prime * result + ((getDeviceTypeId() == null) ? 0 : getDeviceTypeId().hashCode());
        result = prime * result + ((getDeviceTypeIds() == null) ? 0 : getDeviceTypeIds().hashCode());
        result = prime * result + ((getDeviceTypeName() == null) ? 0 : getDeviceTypeName().hashCode());
        result = prime * result + ((getDepartmentId() == null) ? 0 : getDepartmentId().hashCode());
        result = prime * result + ((getDepartmentName() == null) ? 0 : getDepartmentName().hashCode());
        result = prime * result + ((getDepartmentIds() == null) ? 0 : getDepartmentIds().hashCode());
        result = prime * result + ((getAtWarehouse() == null) ? 0 : getAtWarehouse().hashCode());
        result = prime * result + ((getAreaId() == null) ? 0 : getAreaId().hashCode());
        result = prime * result + ((getAtLocation() == null) ? 0 : getAtLocation().hashCode());
        result = prime * result + ((getAreaIds() == null) ? 0 : getAreaIds().hashCode());
        result = prime * result + ((getEntryType() == null) ? 0 : getEntryType().hashCode());
        result = prime * result + ((getContractNo() == null) ? 0 : getContractNo().hashCode());
        result = prime * result + ((getInvoiceNo() == null) ? 0 : getInvoiceNo().hashCode());
        result = prime * result + ((getBuyer() == null) ? 0 : getBuyer().hashCode());
        result = prime * result + ((getBrand() == null) ? 0 : getBrand().hashCode());
        result = prime * result + ((getFactory() == null) ? 0 : getFactory().hashCode());
        result = prime * result + ((getPlace() == null) ? 0 : getPlace().hashCode());
        result = prime * result + ((getSpecs() == null) ? 0 : getSpecs().hashCode());
        result = prime * result + ((getModel() == null) ? 0 : getModel().hashCode());
        result = prime * result + ((getFrameNo() == null) ? 0 : getFrameNo().hashCode());
        result = prime * result + ((getFinanceType() == null) ? 0 : getFinanceType().hashCode());
        result = prime * result + ((getFundsSource() == null) ? 0 : getFundsSource().hashCode());
        result = prime * result + ((getGbCode() == null) ? 0 : getGbCode().hashCode());
        result = prime * result + ((getGbName() == null) ? 0 : getGbName().hashCode());
        result = prime * result + ((getStockInNo() == null) ? 0 : getStockInNo().hashCode());
        result = prime * result + ((getStockInTime() == null) ? 0 : getStockInTime().hashCode());
        result = prime * result + ((getAidFlag() == null) ? 0 : getAidFlag().hashCode());
        result = prime * result + ((getImportFlag() == null) ? 0 : getImportFlag().hashCode());
        result = prime * result + ((getStockFlag() == null) ? 0 : getStockFlag().hashCode());
        result = prime * result + ((getCheckFlag() == null) ? 0 : getCheckFlag().hashCode());
        result = prime * result + ((getNetProductValue() == null) ? 0 : getNetProductValue().hashCode());
        result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
        result = prime * result + ((getUnit() == null) ? 0 : getUnit().hashCode());
        result = prime * result + ((getProvider() == null) ? 0 : getProvider().hashCode());
        result = prime * result + ((getProviderPhone() == null) ? 0 : getProviderPhone().hashCode());
        result = prime * result + ((getUnitCode() == null) ? 0 : getUnitCode().hashCode());
        result = prime * result + ((getWarrantyBeginTime() == null) ? 0 : getWarrantyBeginTime().hashCode());
        result = prime * result + ((getWarrantyEndTime() == null) ? 0 : getWarrantyEndTime().hashCode());
        result = prime * result + ((getAssetLevel() == null) ? 0 : getAssetLevel().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", assetName=").append(assetName);
        sb.append(", assetCode=").append(assetCode);
        sb.append(", assetCardNo=").append(assetCardNo);
        sb.append(", assetType=").append(assetType);
        sb.append(", cardStatus=").append(cardStatus);
        sb.append(", cardType=").append(cardType);
        sb.append(", deviceTypeId=").append(deviceTypeId);
        sb.append(", deviceTypeIds=").append(deviceTypeIds);
        sb.append(", deviceTypeName=").append(deviceTypeName);
        sb.append(", departmentId=").append(departmentId);
        sb.append(", departmentName=").append(departmentName);
        sb.append(", departmentIds=").append(departmentIds);
        sb.append(", atWarehouse=").append(atWarehouse);
        sb.append(", areaId=").append(areaId);
        sb.append(", atLocation=").append(atLocation);
        sb.append(", areaIds=").append(areaIds);
        sb.append(", entryType=").append(entryType);
        sb.append(", contractNo=").append(contractNo);
        sb.append(", invoiceNo=").append(invoiceNo);
        sb.append(", buyer=").append(buyer);
        sb.append(", brand=").append(brand);
        sb.append(", factory=").append(factory);
        sb.append(", place=").append(place);
        sb.append(", specs=").append(specs);
        sb.append(", model=").append(model);
        sb.append(", frameNo=").append(frameNo);
        sb.append(", financeType=").append(financeType);
        sb.append(", fundsSource=").append(fundsSource);
        sb.append(", gbCode=").append(gbCode);
        sb.append(", gbName=").append(gbName);
        sb.append(", stockInNo=").append(stockInNo);
        sb.append(", stockInTime=").append(stockInTime);
        sb.append(", aidFlag=").append(aidFlag);
        sb.append(", importFlag=").append(importFlag);
        sb.append(", stockFlag=").append(stockFlag);
        sb.append(", checkFlag=").append(checkFlag);
        sb.append(", netProductValue=").append(netProductValue);
        sb.append(", price=").append(price);
        sb.append(", unit=").append(unit);
        sb.append(", provider=").append(provider);
        sb.append(", providerPhone=").append(providerPhone);
        sb.append(", unitCode=").append(unitCode);
        sb.append(", warrantyBeginTime=").append(warrantyBeginTime);
        sb.append(", warrantyEndTime=").append(warrantyEndTime);
        sb.append(", assetLevel=").append(assetLevel);
        sb.append(", status=").append(status);
        sb.append(", createBy=").append(createBy);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateBy=").append(updateBy);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}
